package luzhin;

/**
 * 
 * An interface for evaluating boards.
 * @author lacungus
 *
 */
public interface Evaluator {
	/**
	 * 
	 * @param board Board to be evaluated.
	 * @return Evaluation for the board. Positive - good for white, negative - good for black. 
	 */
	public double evaluate(Board board);
	
	/**
	 * Evaluation with attack diagram.
	 * @param board
	 * @param diagram
	 * @return
	 */
	public double evaluate(Board board, AttackDiagram diagram);
	/**
	 * 
	 * @return Infinite value for the evaluator.
	 */
	public double getInf();
}
